from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet

# 创建PDF文档
doc = SimpleDocTemplate(
    "data/uploads/demo_knowledge.pdf",
    pagesize=letter,
    rightMargin=30,
    leftMargin=30,
    topMargin=30,
    bottomMargin=18
)

# 获取样式表
styles = getSampleStyleSheet()

# 准备内容
story = []

# 标题
story.append(Paragraph("知识库系统使用指南", styles["Title"]))
story.append(Spacer(1, 12))

# 介绍部分
story.append(Paragraph("一、系统介绍", styles["Heading1"]))
story.append(Paragraph("本知识库系统旨在帮助用户高效地存储、管理和检索各类知识文档。系统支持多种文档格式，包括PDF、Word文档和文本文件。", styles["BodyText"]))
story.append(Spacer(1, 6))
story.append(Paragraph("通过本系统，用户可以快速构建自己的知识库，实现知识的有效沉淀和共享。", styles["BodyText"]))
story.append(Spacer(1, 12))

# 功能特点
story.append(Paragraph("二、主要功能", styles["Heading1"]))
story.append(Paragraph("1. 文档上传与管理", styles["Heading2"]))
story.append(Paragraph("- 支持PDF、DOCX、TXT等多种格式文档的上传", styles["BodyText"]))
story.append(Paragraph("- 自动提取文档内容并生成向量表示", styles["BodyText"]))
story.append(Paragraph("- 支持文档的分类、标签和版本管理", styles["BodyText"]))
story.append(Spacer(1, 6))

story.append(Paragraph("2. 智能检索功能", styles["Heading2"]))
story.append(Paragraph("- 基于语义的关键词搜索", styles["BodyText"]))
story.append(Paragraph("- 相似度排序和结果高亮", styles["BodyText"]))
story.append(Paragraph("- 支持多维度筛选和高级搜索", styles["BodyText"]))
story.append(Spacer(1, 6))

story.append(Paragraph("3. 知识共享与协作", styles["Heading2"]))
story.append(Paragraph("- 支持团队成员之间的文档共享", styles["BodyText"]))
story.append(Paragraph("- 提供评论和笔记功能", styles["BodyText"]))
story.append(Paragraph("- 支持权限管理和访问控制", styles["BodyText"]))
story.append(Spacer(1, 12))

# 使用指南
story.append(Paragraph("三、使用指南", styles["Heading1"]))
story.append(Paragraph("1. 创建知识库", styles["Heading2"]))
story.append(Paragraph("登录系统后，点击'创建知识库'按钮，输入知识库名称和描述，选择访问权限，即可创建新的知识库。", styles["BodyText"]))
story.append(Spacer(1, 6))

story.append(Paragraph("2. 上传文档", styles["Heading2"]))
story.append(Paragraph("在知识库详情页面，点击'上传文档'按钮，选择本地文件，系统将自动处理并添加到知识库中。", styles["BodyText"]))
story.append(Spacer(1, 6))

story.append(Paragraph("3. 搜索知识", styles["Heading2"]))
story.append(Paragraph("在搜索框中输入关键词，系统将返回相关的知识文档。可以使用高级搜索选项进行更精确的筛选。", styles["BodyText"]))
story.append(Spacer(1, 12))

# 最佳实践
story.append(Paragraph("四、最佳实践", styles["Heading1"]))
story.append(Paragraph("1. 文档组织建议", styles["Heading2"]))
story.append(Paragraph("- 使用清晰的分类结构组织文档", styles["BodyText"]))
story.append(Paragraph("- 为文档添加准确的标签和描述", styles["BodyText"]))
story.append(Paragraph("- 定期更新和维护知识库内容", styles["BodyText"]))
story.append(Spacer(1, 6))

story.append(Paragraph("2. 搜索技巧", styles["Heading2"]))
story.append(Paragraph("- 使用多个关键词提高搜索精度", styles["BodyText"]))
story.append(Paragraph("- 利用筛选功能缩小搜索范围", styles["BodyText"]))
story.append(Paragraph("- 尝试使用不同的表述方式", styles["BodyText"]))

# 生成PDF
doc.build(story)
print("PDF文件已成功生成: data/uploads/demo_knowledge.pdf")